package atest.reopen.executor.batch;

import atest.model.MapperObject;

import java.util.List;

/**
 * @author : zenghua
 * @version : v0.1 BatchOperateTestMapper.java
 * @since : 2018/5/18 14:45
 */
public interface BatchOperateTestMapper {
	/**
	 * 如果想获取返回值怎么操作？？TODO
	 * @param mapperObjectList 列表参数
	 */
	void insert(List<MapperObject> mapperObjectList);

	/**
	 * 单个写入，由程序批量操作写入
	 * @param mapperObject 单个对象
	 */
	void insertSingle(MapperObject mapperObject);

    /**
     * 自定义key
     * @param mapperObjectList 列表参数
     * @return 返回是否成功
     */
	int insertBySelectKey(List<MapperObject> mapperObjectList);

	/**
	 * sql里面批量更新，committer建议在代码里面批量更新：https://github.com/mybatis/mybatis-3/issues/484，
	 * 如果是在xml里面循环，驱动url里面要添加allowMultiQueries=true，参考：https://www.jianshu.com/p/a5f01780ba19
	 * @param mapperObjectList 更新列表参数
	 */
	void update(List<MapperObject> mapperObjectList);
}
